from flask import Flask
from flask_login import LoginManager
import os

# 导入数据库和路由模块
from database import db, User, init_db
from routes import register_routes

# 创建Flask应用
app = Flask(__name__)
app.secret_key = os.urandom(24)  # 用于安全的会话管理

# 配置上传文件夹
UPLOAD_FOLDER = 'uploads'
os.makedirs(UPLOAD_FOLDER, exist_ok=True)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

# 配置Flask-Login
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'  # 未登录用户重定向的页面

# 用户加载函数
@login_manager.user_loader
def load_user(user_id):
    return User.query.get(int(user_id))

# 注册所有路由
register_routes(app)

if __name__ == '__main__':
    # 初始化数据库
    init_db(app)
    app.run(debug=True, port=8000)